<template>
  <div class="dashboard-editor-container padding_25 background_blank position_relative">

    <panel-group @handleSetLineChartData="handleSetLineChartData" />

    <el-row class="background_fff padding_16 margin_bottom_30">
      <line-chart :chart-data="lineChartData" />
    </el-row>

    <el-row :gutter="32">
      <el-col :xs="24" :sm="24" :lg="8">
        <div class="background_fff padding_16 margin_bottom_30">
          <bar-chart />
        </div>
      </el-col>
      <el-col :xs="24" :sm="24" :lg="8">
        <div class="background_fff padding_16 margin_bottom_30">
          <pie-chart />
        </div>
      </el-col>
      <el-col :xs="24" :sm="24" :lg="8">
        <div class="background_fff padding_16 margin_bottom_30">
          <raddar-chart />
        </div>
      </el-col>
    </el-row>
  </div>
</template>

<script>
import PanelGroup from './dashboard/PanelGroup'
import LineChart from './dashboard/LineChart'
import RaddarChart from './dashboard/RaddarChart'
import PieChart from './dashboard/PieChart'
import BarChart from './dashboard/BarChart'
import { queryDateNearSevenDay } from '@/api/setting/alarm'
import { groupBy } from '@/utils'
const lineChartData = {
  newVisitis: {
    expectedData: [100, 120, 161, 134, 105, 160, 165],
    actualData: [120, 82, 91, 154, 162, 140, 145],
    data1: [100, 72, 30, 162, 154, 140, 145],
    data2: [72, 100, 162, 154, 145, 30, 140]
  },
  messages: {
    expectedData: [200, 192, 120, 144, 160, 130, 140],
    actualData: [180, 160, 151, 106, 145, 150, 130]
  },
  purchases: {
    expectedData: [80, 100, 121, 104, 105, 90, 100],
    actualData: [120, 90, 100, 138, 142, 130, 130]
  },
  shoppings: {
    expectedData: [130, 140, 141, 142, 145, 150, 160],
    actualData: [120, 82, 91, 154, 162, 140, 130]
  }
}

export default {
  name: 'Index',
  components: {
    PanelGroup,
    LineChart,
    RaddarChart,
    PieChart,
    BarChart
  },
  data() {
    return {
      lineChartData: {
      }
    }
  },
  created() {
    queryDateNearSevenDay().then(res => {
      const data = groupBy(res.data, 'type')
      Object.keys(data).forEach(key => {
        const group = groupBy(data[key], 'alarmtime')
        Object.keys(group).forEach(subKey => {
          group[subKey] = group[subKey].length
        })
        data[key] = Object.entries(group)
      })
      this.lineChartData = data
    })
  },
  methods: {
    handleSetLineChartData(type) {
      this.lineChartData = lineChartData[type]
    }
  }
}
</script>

<style lang="scss" scoped>

// .dashboard-editor-container {
//   padding: 32px;
//   background-color: rgb(240, 242, 245);
//   position: relative;

//   .chart-wrapper {
//     background: #fff;
//     padding: 16px 16px 0;
//     margin-bottom: 32px;
//   }
// }

// @media (max-width:1024px) {
//   .chart-wrapper {
//     padding: 8px;
//   }
// }
</style>
